package com.zjsru.oneDay202212;

import java.util.Arrays;

/**
 * @Author: CookLee
 * @Date: 2022/12/31
 *
 * 使每位学生都有座位的最少移动次数
 * 输入：seats = [3,1,5], students = [2,7,4]
 * 输出：4
 * 解释：学生移动方式如下：
 * - 第一位学生从位置 2 移动到位置 1 ，移动 1 次。
 * - 第二位学生从位置 7 移动到位置 5 ，移动 2 次。
 * - 第三位学生从位置 4 移动到位置 3 ，移动 1 次。
 * 总共 1 + 2 + 1 = 4 次移动。
 *
 */
public class MinMovesToSeat {
    
    /**
     * 模拟 对位置和学生数组排序
     */
    public int minMovesToSeat(int[] seats, int[] students) {
        Arrays.sort(seats);
        Arrays.sort(students);
        int sum = 0;
        for (int i = 0; i < seats.length; i++) {
            sum += Math.abs(seats[i] - students[i]);
        }
        return sum;
    }
    
    public static void main(String[] args) {
        MinMovesToSeat minMovesToSeat = new MinMovesToSeat();
        int[] seats = new int[] {3, 1, 5};
        int[] students = new int[] {2, 7, 4};
        System.out.println(minMovesToSeat.minMovesToSeat(seats, students));
    }
}
